আনসিবল (Ansible)

ডাইনামিক ইনভেন্টরি স্ক্রিপ্ট তৈরি

Latest Technologies - আনসিবল (Ansible) - অ্যাডভান্সড Ansible টপিকস | NCTB BOOK

Ansible এ ডাইনামিক ইনভেন্টরি স্ক্রিপ্ট হলো একটি সিস্টেম বা ক্লাউড প্ল্যাটফর্ম থেকে স্বয়ংক্রিয়ভাবে হোস্ট ইনফরমেশন সংগ্রহ করার উপায়। এটি static ইনভেন্টরির বিকল্প হিসেবে ব্যবহৃত হয়, যেখানে আপনি JSON বা YAML ফরম্যাটে স্বয়ংক্রিয়ভাবে হোস্টের তথ্য আনতে পারেন।

ডাইনামিক ইনভেন্টরি স্ক্রিপ্ট তৈরি করার ধাপ

  1. Python স্ক্রিপ্ট তৈরি: আপনি Python ব্যবহার করে একটি স্ক্রিপ্ট তৈরি করতে পারেন যা আপনার হোস্টের ইনফরমেশন প্রদান করবে।
  2. স্ক্রিপ্টে হোস্ট তথ্য: স্ক্রিপ্টে হোস্টের তথ্য JSON ফরম্যাটে আউটপুট করতে হবে।
  3. Ansible কনফিগারেশন: Ansible কনফিগারেশন ফাইলে (যেমন ansible.cfg) ডাইনামিক ইনভেন্টরি স্ক্রিপ্টের পাথ উল্লেখ করতে হবে।

উদাহরণ: একটি সহজ ডাইনামিক ইনভেন্টরি স্ক্রিপ্ট

নিচে একটি সহজ Python স্ক্রিপ্টের উদাহরণ দেয়া হলো, যা একটি ডাইনামিক ইনভেন্টরি প্রদান করবে:

dynamic_inventory.py:

#!/usr/bin/env python3

import json

def main():
    inventory = {
        "all": {
            "hosts": ["192.168.1.1", "192.168.1.2"],
            "vars": {
                "ansible_user": "your_username",
                "ansible_ssh_private_key_file": "/path/to/your/private/key"
            }
        },
        "_meta": {
            "hostvars": {}
        }
    }
    
    print(json.dumps(inventory))

if __name__ == "__main__":
    main()

স্ক্রিপ্টের কাজ

  • inventory ডিকশনারিতে আপনি বিভিন্ন হোস্টের তথ্য সংরক্ষণ করেন।
  • "all" নামে একটি গ্রুপ তৈরি করা হয়েছে যেখানে দুটি হোস্ট অন্তর্ভুক্ত আছে।
  • _meta সেকশনে হোস্টের ভ্যারিয়েবল সংরক্ষণ করা হয়।

১. স্ক্রিপ্টটি রানযোগ্য করা

স্ক্রিপ্টটি রানযোগ্য করতে নিচের কমান্ডটি ব্যবহার করুন:

chmod +x dynamic_inventory.py

২. Ansible কনফিগারেশন ফাইল আপডেট করা

Ansible কনফিগারেশন ফাইলে (ansible.cfg) ডাইনামিক ইনভেন্টরি স্ক্রিপ্টের পাথ উল্লেখ করতে হবে। উদাহরণ:

[defaults]
inventory = /path/to/dynamic_inventory.py

৩. ইনভেন্টরি পরীক্ষা করা

আপনি Ansible কমান্ড দিয়ে ইনভেন্টরি পরীক্ষা করতে পারেন:

ansible-inventory --list

এটি আপনার ডাইনামিক ইনভেন্টরি স্ক্রিপ্ট থেকে প্রাপ্ত তথ্য প্রদর্শন করবে।

৪. Ansible প্লেবুক রান করা

এখন আপনি ডাইনামিক ইনভেন্টরি ব্যবহার করে প্লেবুক রান করতে পারেন:

ansible-playbook -i /path/to/dynamic_inventory.py your_playbook.yml

উদাহরণ: AWS EC2 ডাইনামিক ইনভেন্টরি

AWS EC2 এর জন্য ডাইনামিক ইনভেন্টরি স্ক্রিপ্ট ব্যবহারের একটি জনপ্রিয় উপায় হলো ec2.py স্ক্রিপ্ট ব্যবহার করা। এটি AWS SDK ব্যবহার করে আপনার EC2 ইনস্টেন্সগুলোর তথ্য সংগ্রহ করে।

১. AWS CLI ইনস্টল করা

sudo apt-get install awscli

২. AWS এর জন্য ডাইনামিক ইনভেন্টরি স্ক্রিপ্ট

AWS EC2 এর জন্য ডাইনামিক ইনভেন্টরি স্ক্রিপ্ট ডাউনলোড করতে পারেন:

curl https://raw.githubusercontent.com/ansible/ansible/devel/contrib/inventory/ec2.py -o ec2.py
chmod +x ec2.py

৩. ইনভেন্টরি কনফিগারেশন

Ansible কনফিগারেশন ফাইলে AWS রিজিওন এবং ক্রেডেনশিয়াল সেট করতে হবে।

সংক্ষেপে

  • ডাইনামিক ইনভেন্টরি স্ক্রিপ্ট তৈরি করা হলে তা স্বয়ংক্রিয়ভাবে হোস্টের তথ্য সংগ্রহ করতে সক্ষম হয়।
  • Python স্ক্রিপ্ট ব্যবহার করে সহজেই একটি ডাইনামিক ইনভেন্টরি তৈরি করা যায়।
  • AWS EC2 বা অন্য ক্লাউড সার্ভিসের জন্য অফিসিয়াল ডাইনামিক ইনভেন্টরি স্ক্রিপ্ট ব্যবহার করা হয়।

ডাইনামিক ইনভেন্টরি ব্যবহারে আপনার Ansible প্লেবুক এবং কাজগুলো আরো অটোমেটেড এবং কার্যকর হবে।

Promotion